home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Archives / ARexxTools / TRX_Tools.lha / TritonRexx-Tools / Exchange / Exchange.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1995-11-09  |  16.8 KB  |  568 lines

  1. /*
  2.    $VER: Exchange.rexx V1.4 (9.11.95) Copyright by Nils Görs
  3.  
  4.   This ARexx script was written using the tritonrexx.library and
  5.   rexxtricks.library from Jürgen Kohrmeyer <j_kohrmeyer@wilam.north.de>.
  6.  
  7.   This Script needs HandleCX from Martin Berndt.
  8.  
  9.   required libraries: tritonrexx.library
  10.                       rexxtricks.library
  11. */
  12.  
  13. /*  temporary Filename */
  14. Tmp.Out     = "t:HandleCX.out"
  15.  
  16. /* Name and path from Martin Berndt's 'HandleCX' */
  17. HandleCX    = "HandleCX"
  18.  
  19. /* Path from the configfiles */
  20. Directory   = "REXX:"
  21. ListPattern = "#?.EXCList"
  22. /************************************************
  23.  * Please don't change anything under this line *
  24.  ************************************************/
  25. NL = '0a'x
  26.  
  27. PARSE ARG PubScreen
  28.  
  29. IF PubScreen == "?" THEN DO
  30.  OPTIONS PROMPT "PUBSCREEN/K: "
  31.  PARSE PULL PubScreen
  32. END
  33.  
  34.  
  35. IF ~SHOW('LIBRARIES','tritonrexx.library') THEN DO
  36.    IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
  37.       SAY 'Kann die <tritonrexx.library> nicht öffnen!'
  38.       EXIT(10)
  39.    END
  40. END
  41.  
  42. IF ~SHOW('LIBRARIES','rexxtricks.library') THEN DO
  43.    IF ~ADDLIB('rexxtricks.library',10,-30,0) THEN DO
  44.       SAY 'Kann die <rexxtricks.library> nicht öffnen!'
  45.       EXIT(10)
  46.    END
  47. END
  48.  
  49. IF PubScreen == "" THEN
  50.    PubScreen = GETDEFAULTPUBSCREEN()
  51.  
  52. call _CreateList
  53.  
  54. /*
  55. ** Beschreibung der Applikation
  56. */
  57.  
  58. appname     = 'Exchange'
  59. applongname = 'Exchange - ©1995 by Nils Görs'
  60. appinfo     = 'Tool for Commodity controlling'
  61. appversion  = '1.4'
  62. apprelease  = '4'
  63. appdate     = '9.11.95'
  64.  
  65. Activation.0 = 2
  66. Activation.1 = "[a]ctive"
  67. Activation.2 = "in[a]ctive"
  68.  
  69. Activation2.0 = 2
  70. Activation2.1 = "Deact[i]vate all"
  71. Activation2.2 = "Act[i]vate all"
  72.  
  73. IF active.1 == "INACTIVE" THEN N1 = 1
  74.  
  75. _maintags:
  76. windowtags = WindowID(1),
  77.              PubScreenName(PubScreen),
  78.              WindowTitle(appname appversion),
  79.                         BeginMenu("Project"),
  80.                         MenuItem("?_About",10),
  81.                         MenuItem("About Triton",11) ItemBarlabel,
  82.                         MenuItem("U_Update Toollist",12),
  83.                         MenuItem("C_Change PubScreen",14),
  84.                         MenuItem("I_Iconify",16) ItemBarlabel,
  85.                         MenuItem("F_Filelist remove",15) ItemBarlabel,
  86.                         MenuItem("Q_Quit",13),
  87.              'HorizGroupA Space VertGroupA Space',
  88.                 NamedSeparatorIN("Available _commodities",1),
  89.                'Space',
  90.                ListSS('Tools',1,0,0),
  91.               'EndGroup',
  92.               'VertGroupA SpaceB SpaceB',
  93.               GetEntryButton(12),
  94.               GetFileButton(15) 'SpaceB SpaceB SpaceB SpaceB SpaceB SpaceB SpaceB SpaceB',
  95.               'EndGroup',
  96.               'SpaceS',
  97.               'VertGroupA Space',
  98.                 NamedSeparator("Informations"),
  99.                 'Space',
  100.                'TROB_FrameBox TRFB_Text',
  101.                 'VertGroupA',
  102.                 'SpaceS',
  103.                  ClippedTextID(Information.1,2),
  104.                  ClippedTextID(Information2.1,22),
  105.                 'Space EndGroup',
  106.                'SpaceB',
  107.                'BeginLine',
  108.                Button("_Show Window",3),
  109.                'SpaceS',
  110.                Button("_Hide Window",4),
  111.                'EndLine',
  112.               'SpaceS',
  113.                'BeginLine',
  114.                  CycleGadget(activation,n1,5),
  115.                  'SpaceS',
  116.                  Button("    _Remove   ",6),
  117.                'EndLine',
  118.                'SpaceS',
  119.                'BeginLine',
  120.                  CycleGadget(activation2,0,7),
  121.                  'SpaceS',
  122.                  Button("     Remove all    ",8),
  123.                'EndLine',
  124.               'Space EndGroup Space EndGroup EndProject'
  125.  
  126. /*
  127. ** Unterbrechungssignale
  128. */
  129.  
  130. SIGNAL ON break_c
  131. SIGNAL ON failure
  132. SIGNAL ON halt
  133. SIGNAL ON ioerr
  134. SIGNAL ON syntax
  135.  
  136. app = TR_CREATEAPP('TRCA_Name'     '"'appname'"',
  137.                    'TRCA_LongName' '"'applongname'"',
  138.                    'TRCA_Info'     '"'appinfo'"',
  139.                    'TRCA_Version'  '"'appversion'"',
  140.                    'TRCA_Release'  '"'apprelease'"',
  141.                    'TRCA_Date'     '"'appdate'"',
  142.                    'TAG_END')
  143.  
  144. IF app ~= '00000000'x THEN DO
  145.  
  146.    window = TR_OPENPROJECT(app,windowtags)
  147.    WindowProject=C2D(window) /* zum Locken des Fensters bei About */
  148.  
  149.    IF window ~= '00000000'x THEN DO
  150.       ende = 0
  151.  
  152. IF GUI.1 == "NOGUI" THEN DO
  153.   CALL TR_SETATTRIBUTE(window,3,'TRAT_Disabled',1)
  154.   CALL TR_SETATTRIBUTE(window,4,'TRAT_Disabled',1)
  155. END
  156.       DO WHILE ende ~= 1
  157.          CALL TR_WAIT(app,'')
  158. /* 1 = ListView
  159.    3 = ShowWindow
  160.    4 = HideWindow
  161.    5 = Cycle 1
  162.    6 = Remove
  163.    7 = Cycle 2
  164.    8 = Remove all
  165.   10 = About
  166.   11 = About Triton
  167.   12 = Update
  168.   13 = Quit
  169.   14 = Update Screen
  170.   15 = GetFile
  171. */
  172.    
  173.          DO WHILE TR_HANDLEMSG(app,'event')
  174.           IF event.trm_class = 'TRMS_KEYPRESSED' THEN DO
  175.            IF event.trm_code == 32 THEN CALL _InActivate
  176.            IF event.trm_code == 23 THEN DO
  177.             nummer = TR_GETATTRIBUTE(window,7,'TRAT_Value')
  178.              IF Nummer == 0 THEN 
  179.                CALL TR_SETATTRIBUTE(window,7,'TRAT_Value',1)
  180.               ELSE
  181.                CALL TR_SETATTRIBUTE(window,7,'TRAT_Value',0)
  182.            CALL _InActivateALL
  183.            END
  184.           END
  185.  
  186.           IF event.trm_class = 'TRMS_ACTION' THEN DO
  187.             nummer = TR_GETATTRIBUTE(window,1,'TRAT_Value')+1
  188.            SELECT
  189.              WHEN event.trm_id = 3 THEN
  190.                ADDRESS COMMAND HandleCX '"'tools.nummer'"' 'POPUP'
  191.              WHEN event.trm_id = 4 THEN
  192.                ADDRESS COMMAND HandleCX '"'tools.nummer'"' 'HIDE'
  193.              WHEN event.trm_id = 6 THEN DO
  194.                ADDRESS COMMAND HandleCX '"'tools.nummer'"' 'REMOVE'
  195.                 CALL _CreateList
  196.                 CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',Tools)
  197.                 nummer = TR_GETATTRIBUTE(window,1,'TRAT_Value')+1
  198.                 CALL TR_SETATTRIBUTE(window,2,'TRAT_Text',Information.nummer)
  199.                 CALL TR_SETATTRIBUTE(window,22,'TRAT_Text',Information2.nummer)
  200.                 call _CheckGUI
  201.                 call _CheckActive
  202.              END
  203.              WHEN event.trm_id = 8 THEN DO
  204.               DO i = 1 to tools.0
  205.                    ADDRESS COMMAND HandleCX '"'Tools.i'"' 'REMOVE'
  206.               END
  207.                    CALL _CreateList
  208.                    CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',Tools)
  209.                    CALL _CheckGUI
  210.                    CALL _CheckActive
  211.              END
  212.                   WHEN event.trm_id = 10 THEN DO
  213.                    CALL TR_EasyRequest(app,"Exchange.rexx V"appversion "("appdate")",
  214.                    NL NL"(c) 1995 Nils Görs <N.Goers@Art-Line.Art-Line.de>",
  215.                    NL"- freely distributable -","OK","TREZ_Title About TREZ_LockProject" WindowProject)
  216.                   END
  217.  
  218.                   WHEN event.trm_id = 11 THEN DO
  219.                    CALL TR_EasyRequest(app,"This application uses the Triton GUI creation system",
  220.                    NL"Triton is (C) by Stefan Zeiger <s.zeiger@laren.rhein-main.de>",
  221.                 NL NL"This application was written using the tritonrexx.library",
  222.                    NL"tritonrexx.library is (C) by Jürgen Kohrmeyer <j_kohrmeyer@wilam.north.de>",,
  223.                    "OK","TREZ_Title" '"About Triton"' "TREZ_LockProject" WindowProject)
  224.                   END
  225.  
  226.                   WHEN event.trm_id = 12 THEN DO
  227.                    CALL _UpdateToolListe
  228.                   END
  229.  
  230.                   WHEN event.trm_id = 16 THEN DO
  231.                    CALL _Iconify
  232.                   END
  233.  
  234.                   WHEN event.trm_id = 15 THEN DO
  235.                   bool = ASL_RequestFile(window,filelistname,,
  236.                                "ASLFR_PubScreenName" PubScreen,
  237.                                "ASLFR_InitialDrawer" Directory,
  238.                                "ASLFR_InitialPattern" ListPattern,
  239.                                "ASLFR_TitleText" '"Commodity removelist?"')
  240.                    IF bool = 1 THEN DO
  241.                     CALL READFILE(filelistname.1,remlist)
  242.                     Auswahl=TR_EasyRequest(app,"Are you sure to remove all",
  243.                     "commodities, listed in"NL filelistname.1 "?",,
  244.                     "_Yes|_Show first|_No","TREZ_LockProject" WindowProject)
  245.                     IF Auswahl = 1 THEN CALL _removefromFileList
  246.                     IF Auswahl = 2 THEN CALL _removeFileList
  247.                    END
  248.                   END
  249.  
  250.                   WHEN event.trm_id = 14 THEN CALL _NewPubScreen
  251.                   WHEN event.trm_id = 13 THEN DO
  252.                    Quit=TR_EasyRequest(app,"Really Quit?",,
  253.                                       "_Yes|_No","TREZ_Title Quit TREZ_LockProject" WindowProject)
  254.                     IF Quit == 1 THEN DO
  255.                      CALL TR_CLOSEPROJECT(window)
  256.                      CALL TR_DELETEAPP(app)
  257.                      EXIT(0)
  258.                     END
  259.                   END
  260.             OTHERWISE
  261.             NOP
  262.            END
  263.           END
  264.  
  265.             IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
  266.               /* Beim Doppelklick wird ShowWindow gestartet */
  267.               IF BITAND(D2X(event.trm_qualifier),'0200'x) = '0200'x THEN
  268.                  ADDRESS COMMAND HandleCX '"'tools.nummer'"' 'POPUP'
  269.                   SELECT
  270.                    WHEN event.trm_id = 1 THEN DO
  271.                      nummer = event.trm_data+1
  272.                       CALL TR_SETATTRIBUTE(window,2,'TRAT_Text',Information.nummer)
  273.                       CALL TR_SETATTRIBUTE(window,22,'TRAT_Text',Information2.nummer)
  274.                       call _CheckGUI
  275.                       call _CheckActive
  276.                   END
  277.                   WHEN event.trm_id = 5 THEN CALL _InActivate
  278.  
  279.                   WHEN event.trm_id = 7 THEN CALL _InActivateALL
  280.                   OTHERWISE
  281.                      NOP
  282.                END
  283.             END
  284.  
  285.             IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
  286.               IF event.trm_project = window THEN ende = 1
  287.               IF event.trm_project = dummywindow THEN
  288.                CALL _uniconify
  289.             END
  290.  
  291.          END
  292.       END
  293.  
  294.       CALL TR_CLOSEPROJECT(window)
  295.    END
  296.  
  297.    CALL TR_DELETEAPP(app)
  298. END
  299.  
  300. EXIT(0)
  301.  
  302. /*  Routine, die das GUI auf einem neuen PubScreen öffnen läßt */
  303. _NewPubScreen:
  304. IF PUBSCREENLIST('ScreenList') == 0 THEN RETURN
  305.  
  306. ScreenListTags = WindowID(2),
  307.    WindowPosition('TRWP_MOUSEPOINTER'),
  308.    WindowTitle('Change PubScreen'),
  309.    WindowFlags('TRWF_NOCLOSEGADGET|TRWF_NOESCCLOSE'),
  310.    PubScreenName(Pubscreen),
  311.    'VertGroupA',
  312.       'Space',
  313.       'HorizGroupA',
  314.          'Space',
  315.          ListSel('screenlist',301,0),
  316.          'Space',
  317.       'EndGroup',
  318.       'Space',
  319.       'HorizSeparator',
  320.       'Space',
  321.       'HorizGroupA',
  322.       'Space',
  323.       ButtonRE('Cancel',302),
  324.       'Space',
  325.    'EndGroup Space EndGroup EndGroup EndProject'
  326.  
  327.     PubScreenProject = TR_OPENPROJECT(app,Screenlisttags)
  328.  
  329.   IF PubScreenProject ~= '00000000'x THEN DO
  330.     CALL TR_LOCKPROJECT(window)
  331.  
  332.       DO WHILE ende ~= 1
  333.          DO WHILE TR_HANDLEMSG(app,'event2')
  334.             IF event2.trm_class = 'TRMS_ACTION' THEN ende = 1 /* Cancel Gadget */
  335.  
  336.             IF event2.trm_class = 'TRMS_NEWVALUE' THEN DO
  337.             nummer = TR_GETATTRIBUTE(PubScreenProject,301,'TRAT_Value')+1
  338.              IF PubScreen ~= Screenlist.nummer THEN DO
  339.               PubScreen = ScreenList.nummer
  340.               CALL TR_UNLOCKPROJECT(window)
  341.               CALL TR_CLOSEPROJECT(PubScreenProject)
  342.               CALL TR_CLOSEPROJECT(window)
  343.               CALL TR_DELETEAPP(app)
  344.               CALL _maintags
  345.              END
  346.             ELSE ende = 1
  347.             END
  348.          END
  349.       END
  350.  
  351.    ende = 0
  352.     CALL TR_UNLOCKPROJECT(window)
  353.     CALL TR_CLOSEPROJECT(PubScreenProject)
  354. END
  355. RETURN
  356.  
  357. /* Routine, um die Commodities aus der Fileliste zu entfernen */
  358. _RemoveFileList:
  359. RemoveListTags = WindowID(2),
  360.    WindowPosition('TRWP_MOUSEPOINTER'),
  361.    WindowTitle('Remove this Commodities?'),
  362.    WindowFlags('TRWF_NOCLOSEGADGET|TRWF_NOESCCLOSE'),
  363.    PubScreenName(Pubscreen),
  364.    'VertGroupA',
  365.       'Space',
  366.       'HorizGroupA',
  367.          'Space',
  368.          ListRO('remlist',301,0),
  369.          'Space',
  370.       'EndGroup',
  371.       'Space',
  372.       'HorizSeparator',
  373.       'Space',
  374.       'HorizGroupA',
  375.       'Space',
  376.       ButtonRE('_Remove',302),
  377.       ButtonRE('_Cancel',303),
  378.       'Space',
  379.    'EndGroup Space EndGroup EndGroup EndProject'
  380.  
  381.  
  382.     PubScreenProject = TR_OPENPROJECT(app,Removelisttags)
  383.  
  384.   IF PubScreenProject ~= '00000000'x THEN DO
  385.     CALL TR_LOCKPROJECT(window)
  386.  
  387.       DO WHILE ende ~= 1
  388.          DO WHILE TR_HANDLEMSG(app,'event2')
  389.             IF event2.trm_id = 302 THEN DO
  390.              CALL _removefromFileList
  391.              ende = 1
  392.             END
  393.             IF event2.trm_id = 303 THEN ende = 1
  394.          END
  395.       END
  396.     CALL TR_UNLOCKPROJECT(window)
  397.     CALL TR_CLOSEPROJECT(PubScreenProject)
  398. END
  399. ende = 0
  400. RETURN
  401. _removefromFileList:
  402. DO i = 1 to remlist.0
  403.  ADDRESS COMMAND HandleCX '"'remlist.i'"' 'REMOVE'
  404. END
  405. CALL _UpdateToolListe
  406. RETURN
  407.  
  408. /* hier wird die List der Commodities upgedatet! */
  409. _UpdateToolListe:
  410. CALL _CreateList
  411. CALL _CheckGUI
  412. CALL _CheckActive
  413. CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',Tools)
  414. CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',Nummer-1)
  415. CALL TR_SETATTRIBUTE(window,2,'TRAT_Text',Information.nummer)
  416. CALL TR_SETATTRIBUTE(window,22,'TRAT_Text',Information2.nummer)
  417. RETRUN
  418.  
  419.  
  420. /* Es folgen nun die ganzen Unterroutinen, die die Listen erzeugen,
  421.    die GUI überprüfen, Texte updaten etc. etc. */
  422.  
  423. _CreateList:
  424. ADDRESS COMMAND HandleCX "v >"Tmp.out
  425. IF READFILE(Tmp.Out,Infile) == 0 THEN EXIT(5)
  426.  
  427. Tools.0 = Infile.0/2
  428. Information.0 = Tools.0
  429. Information2.0 = Tools.0
  430. Active.0 = Tools.0
  431. GUI.0 = Tools.0
  432. j = 1
  433.  
  434. DO i = 1 TO Infile.0
  435.  /* hier wird alles in die richtigen Listen verteilt,
  436.     Toolname, Active, Gui, Information */
  437.  Tools.j=DELWORD(Infile.i,1,1)
  438.  WordNo=WORDS(Tools.j)
  439.  GUI.j = SUBWORD(Tools.j,WordNo)
  440.  Active.j = SUBWORD(Tools.j,WordNo-1,1)
  441.  Tools.j = SUBWORD(Tools.j,1,WordNo-2)
  442.  
  443.  /* und hier wird die Information zu dem Commodity verarbeitet */
  444.  i = i+1
  445.  Information.j=DELWORD(Infile.i,1,1)
  446.   MaxLenght=LENGTH(Information.j)
  447.   IF INDEX(Information.j,") ") ~= 0 THEN DO
  448.    /* (xx.xx.xx) (xxxxx) */
  449.     Position=LASTPOS(" (",Information.j)
  450.     First=LEFT(Information.j,Position)
  451.     second=RIGHT(Information.j,Maxlenght-Position-1)
  452.     second=LEFT(second,Maxlenght-Position-2)
  453.   END
  454.   ELSE DO
  455.    /* (xxxxx) */
  456.    Position=INDEX(Information.j," (")
  457.    First=LEFT(Information.j,Position)
  458.     second=RIGHT(Information.j,Maxlenght-Position-1)
  459.     second=LEFT(second,Maxlenght-Position-2)
  460.   END
  461.  Information.j = First
  462.  Information2.j = second
  463.  j=j+1
  464. END
  465.  
  466. ADDRESS COMMAND "c:delete" Tmp.Out "QUIET"
  467. RETURN
  468.  
  469. /* wie sollen die Gadget in der GUI denn nun dargestellt werden ? */
  470. _CheckGUI:
  471.  IF gui.nummer == "NOGUI" THEN DO
  472.   CALL TR_SETATTRIBUTE(window,3,'TRAT_Disabled',1)
  473.   CALL TR_SETATTRIBUTE(window,4,'TRAT_Disabled',1)
  474.  END
  475.  ELSE DO
  476.   CALL TR_SETATTRIBUTE(window,3,'TRAT_Disabled',0)
  477.   CALL TR_SETATTRIBUTE(window,4,'TRAT_Disabled',0)
  478.  END
  479. RETURN
  480.  
  481. _CheckActive:
  482.  IF active.nummer == "INACTIVE" THEN
  483.   CALL TR_SETATTRIBUTE(window,5,'TRAT_Value',1)
  484.  ELSE
  485.   CALL TR_SETATTRIBUTE(window,5,'TRAT_Value',0)
  486. RETURN
  487.  
  488. _InActivate:
  489.   nummer = TR_GETATTRIBUTE(window,1,'TRAT_Value')+1
  490.   ADDRESS COMMAND HandleCX '"'Tools.Nummer'"' 'TOGGLE'
  491.   CALL _CreateList
  492.   CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',Tools)
  493.   CALL _CheckGUI
  494.   CALL _CheckActive
  495. RETURN
  496.  
  497. _InActivateALL:
  498.   nummer = TR_GETATTRIBUTE(window,7,'TRAT_Value')
  499.   IF nummer == 1 THEN Action = 'Disable'
  500.   ELSE Action = 'Enable'
  501.   DO i = 1 to tools.0
  502.   ADDRESS COMMAND HandleCX '"'tools.i'"' Action
  503.   END
  504.   CALL _CreateList
  505.   CALL TR_SETATTRIBUTE(window,1,'TROB_Listview',Tools)
  506.   CALL _CheckGUI
  507.   CALL _CheckActive
  508. RETURN
  509.  
  510. _Iconify:
  511. iwinsize.trd_left=10
  512. iwinsize.trd_top=10
  513. iwinsize.trd_width=20
  514. iwinsize.trd_height=10
  515. iwinsize.trd_left2=10
  516. iwinsize.trd_top2=10
  517. iwinsize.trd_width2=10
  518. iwinsize.trd_height2=20
  519. iwinsize.trd_zoomed=30
  520.  
  521. SleepWin = WindowID(1000),
  522.            PubScreenName(PubScreen),
  523.            WindowTitle(appname appversion),
  524.            WindowDimensions(iwinsize),
  525.            'EndProject'
  526.  
  527.   ok=tr_closeproject(window)
  528.   window = '00000000'x
  529. dummywindow = TR_OPENPROJECT(app,SleepWin)
  530. return
  531.  
  532. _uniconify:
  533.   ok=tr_closeproject(dummywindow)
  534.   dummywindow = '00000000'x
  535.  
  536.   prefs.iwinx=iwinsize.trd_left
  537.   prefs.iwiny=iwinsize.trd_top
  538.   prefs.iwinw=iwinsize.trd_width
  539.   prefs.iwinh=iwinsize.trd_height
  540.   prefs.iwinx2=iwinsize.trd_left2
  541.   prefs.iwiny2=iwinsize.trd_top2
  542.   prefs.iwinw2=iwinsize.trd_width2
  543.   prefs.iwinh2=iwinsize.trd_height2
  544.   prefs.iwinz=iwinsize.trd_zoomed
  545.  
  546.    window = TR_OPENPROJECT(app,windowtags)
  547.    WindowProject=C2D(window) /* zum Locken des Fensters bei About */
  548.   CALL _UpdateToolListe
  549.  
  550. return
  551. /*******************************************************************************
  552. ** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
  553. *******************************************************************************/
  554.  
  555. break_c:
  556. failure:
  557. halt:
  558. ioerr:
  559. syntax:
  560.    SAY '+++ Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)
  561.    SAY SOURCELINE(sigl)
  562.  
  563.    IF app ~= '00000000'x THEN
  564.       CALL TR_DELETEAPP(app)
  565.  
  566.    EXIT(10)
  567. /*EOS*/
  568.